package site.jlopen.kuscia.rpc;

import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.BatchQueryDomainRequest;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.BatchQueryDomainResponse;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.CreateDomainRequest;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.CreateDomainResponse;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.DeleteDomainRequest;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.DeleteDomainResponse;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.QueryDomainRequest;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.QueryDomainResponse;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.UpdateDomainRequest;
import org.secretflow.v1alpha1.kusciaapi.DomainOuterClass.UpdateDomainResponse;

/**
* @ClassName: KusciaDomainRpc
* @Description: 在 Kuscia 中将隐私计算的节点称为 Domain，一个 Domain 中可以包含多个 K3s 的工作节点（Node）
* @author ChenJiaLu
* @date 2024年7月13日 下午3:25:42
 */
public interface KusciaDomainRpc extends KusciaRpc {
	
	/**
	* <strong>创建节点</strong>
	* @author ChenJiaLu
	* @date 2024年7月13日 下午3:23:06
	 */
	public CreateDomainResponse createDomain(CreateDomainRequest request) throws Exception;
	
	/**
	* <strong>更新节点</strong>
	* @author ChenJiaLu
	* @date 2024年7月13日 下午3:23:06
	 */
	public UpdateDomainResponse updateDomain(UpdateDomainRequest request) throws Exception;
	
	/**
	* <strong>删除节点</strong>
	* @author ChenJiaLu
	* @date 2024年7月13日 下午3:23:06
	 */
	public DeleteDomainResponse deleteDomain(DeleteDomainRequest request) throws Exception;
	
	/**
	* <strong>查询节点</strong>
	* @author ChenJiaLu
	* @date 2024年7月13日 下午3:23:06
	 */
	public QueryDomainResponse queryDomain(QueryDomainRequest request) throws Exception;
	
	/**
	* <strong>批量查询节点状态</strong>
	* @author ChenJiaLu
	* @date 2024年7月13日 下午3:23:06
	 */
	public BatchQueryDomainResponse batchQueryDomain(BatchQueryDomainRequest request) throws Exception;
}